package com.chenhs.oop.study.IO流;

import org.junit.Test;

import java.io.*;

/**
 * @className: com.chenhs.oop.study.IO流-> IO5包装流
 * @description: 这个类是做做什么得吖，小朋友？
 * @author: chenhs
 * @createDate: 2022-12-24 21:28
 * @version: 1.0
 * 节点流是直接与数据交互，在最底层。
 * 包装流（处理流）就是节点流的增强，为封装了一些节点流的常用操作。
 */
public class IO5包装流 {
//    写数据
    @Test
   public  void  tt() throws IOException {
        String path="D:\\temp\\字符流2.txt";
        File file = new File(path);
        File fileParentFile = file.getParentFile();
        if(!fileParentFile.exists()){
//            创建路径。
            fileParentFile.mkdirs();
        }
        BufferedWriter writer = new BufferedWriter(new FileWriter(path,true));
//        换行 的三种方式 推荐使用   writer.newLine();会根据系统自动使用对应换行符
//        writer.newLine();
//        writer.write("\r\n");
//        writer.write(System.getProperty("line.separator"));
        writer.write("你是憨憨2");
        writer.close();
        System.out.println("写入完成");
        System.out.println("打印写入内容开始");
        this.t();
        System.out.println("打印写入内容结束");
    }
//    读数据
    @Test
    public void t() throws IOException {
        FileReader reader = new FileReader("D:\\temp\\字符流2.txt");
        BufferedReader bufferedReader = new BufferedReader(reader);
        String line;
//        按行读取文件数据，当读取到最后行数据后再读取就会返回 null
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
//        关闭流只用关闭处理流，字符流会一起关闭
        bufferedReader.close();
    }
}
